/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package acceso_datos;

import datos.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Pablo
 */
public class UsuarioDB {
    public boolean grabar(Usuario user) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        PersonaDB personaDB=new PersonaDB();
        Persona persona=new Persona();
        persona.setCedula(user.getCedula());
        persona.setNombre(user.getNombre());
        persona.setApellido(user.getApellido());
        persona.setDireccion(user.getDireccion());
        persona.setTelefono(user.getTelefono());
        
        personaDB.grabar(persona);
        
        String query = "insert into usuario values("
                + "'" + user.getContrasena()
                + "','" + user.getCedula()
                +"')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;               
    }
    
    public int modificar(Usuario user) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="update usuario set "
                + "contrasenia='" + user.getContrasena() + "', "                
                + " where cedula='" + user.getCedula() + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    
    public int eliminar(String id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="delete from usuario where cedula='" + id + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    public Usuario buscar(String id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        PersonaDB personaDB=new PersonaDB();        
        String query="select * from usuario where cedula ='" + id + "'";
        ResultSet resultado = db.seleccion(query);
        Usuario user=null;
        if (resultado!=null) {
            Persona persona=personaDB.buscar(id);
            resultado.next();
            user = new Usuario();
            user.setCedula(persona.getCedula());
            user.setNombre(persona.getCedula());
            user.setApellido(persona.getCedula());
            user.setDireccion(persona.getDireccion());      
            user.setTelefono(persona.getTelefono());            
            user.setContrasena(resultado.getString("contrasenia"));
            
        }
        db.cerrarConexion();
        return user;
    }
    public ArrayList listar() throws SQLException {
       OperacionesBase db = new OperacionesBase();
       PersonaDB personaDB=new PersonaDB();  
        String query="select * from usuario ";
        ResultSet resultado = db.seleccion(query);
        Usuario user=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {            
            user = new Usuario();
            user.setCedula(resultado.getString("cedula"));
            Persona persona=personaDB.buscar(user.getCedula());            
            user.setNombre(persona.getNombre());
            user.setApellido(persona.getCedula());
            user.setDireccion(persona.getDireccion());          
            user.setTelefono(persona.getTelefono());            
            user.setContrasena(resultado.getString("contrasenia"));
            todos.add(user);
        }
        db.cerrarConexion();
        return todos;
    }
}
